
#ifndef WIDGET_FUNCD_WEATHER_H
#define WIDGET_FUNCD_WEATHER_H

#include <QWidget>
#include <QDebug>
#include <QString>
#include <QIcon>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QUrlQuery>
#include <QJsonDocument>
#include <QJsonObject>
#include <QMessageBox>
#include <QFile>
#include <QTextStream>
#include <QJsonArray>
#include <QList>
#include <cstdio>
namespace Ui {
class Widget_funcD_Weather;
}

class Widget_funcD_Weather : public QWidget
{
    Q_OBJECT
    
public:
    explicit Widget_funcD_Weather(QWidget *parent = nullptr);
    ~Widget_funcD_Weather();
    QNetworkAccessManager * network_manager;
    QStringList city_list; // 用于存储各个城市对应的编号
private:
    Ui::Widget_funcD_Weather *ui;
    QUrl city_url;
    QStringList tem_max_list; // 用于存储7天的最高气温
    QStringList tem_min_list; // 用于存储7天的最低气温
    QStringList weather_list; // 用于存储7天的天气状况
    QStringList week_list; // 用于存储7天的星期
    QStringList sum_time_list; // 记录今天的太阳的上山时间和下山时间
    QString updata_time; // 记录当前刷新时间
    QString cur_time; // 记录当前时间
    QString cur_city; // 记录当前城市
    QString cur_tem; // 记录当前温度
    QString cur_him; // 记录当前湿度
    QString today_date; // 记录今天的日期
    QString today_wind; // 记录今天的风向
    QString today_callWord; // 记录今天的提示语
    QString today_air_quality; // 记录今天空气质量
    int today_pm10; // 记录今天pm10
    int today_pm25; // 记录今天pm25
private:
    void set_cityList(void); // 设置城市列表
    bool set_label_picture(QString name, QLabel & label); // 用于设置天气图标
    void set_label_text(QString name, QLabel & label); // 用于设置label文字
    QString find_city(QString city_name); // 查找城市列表，返回对应城市的城市编号
    void init_module(void); // 初始化组件
public:
    void get_joson(void); // 获取JSON数据
    void set_url(QUrl url); // 设置当前天气入口
    void anlalysis_joson(void); // 解析JSON数据
    void show_json(void); // 将JSON数据显示在QT界面上
    void clear_json(void); // 将存储的JSON数据清除
private slots:
    void onReplied(QNetworkReply * reply);
    void on_pushButton_clicked();
};

#endif // WIDGET_FUNCD_WEATHER_H
